package main

import "fmt"

/*
	以两个数相加为例：
*/

// 传统的面向过程：
func add(a, b int) int {
	return a + b
}

// 面向对象：
//
//	方法：给某个类型绑定一个函数
type long int

// tmp叫接收者，接收者就是传递的一个参数
func (tmp long) add1(other long) long {
	return tmp + other
}

func main() {
	// 面向过程
	r1 := add(1, 2)
	fmt.Println("r1 =", r1) // r1 = 3

	// 面向对象
	var a long = 2
	r2 := a.add1(3)
	fmt.Println("r2 =", r2) // r2 = 5
}
